#!/usr/bin/python3
# -*- coding:utf-8 -*-
""""
@Author: 李吉凯
@Email:
@Time: 2021/8/18 16:37
@File: 年度自评_新增.py
"""

import BladeFerm.Lib.Common as Common
from BladeFerm.UI.NcPublic import *
from BladeFerm.utils.basic_opration import get_curtime


def test(input_data=None, ui_except=None, input_elements=None):
    logger.info(input_data)
    logger.info(input_elements)
    logger.info(ui_except)
    # 测试 报表预处理
    InputElements = input_data.get('Elements(Object)', None)
    InputData = input_data.copy()
    InputElement = eval(InputElements) if input_elements is None else input_elements
    UIExcept = ui_except.copy()
    # 进入主页
    openWebPage()
    # 打开菜单
    getMenu(InputData.get('菜单名字'), InputElement.get('菜单元素'), )

    # 点击新增
    add(InputElement.get('新增按钮元素'))
    # 输入任务名称
    job_name = InputData.get('任务名称') + '_' + get_curtime('%m%d%H%M%S')
    write(job_name, InputElement.get('名称输入元素'), '任务名称')
    # 选择年份
    selectTable(InputData.get('年度'), InputElement.get('年度下拉元素'), InputElement.get('年度选择元素'))
    # 下发类型
    writeMethod(InputData.get('下发类型'), InputElement.get('下发类型输入元素'))
    # 选择评估类型
    selectOfList(InputData.get('评估类型'), InputElement.get('评估类型下拉元素'),
                 InputElement.get('评估类型选择元素'), reserve=True)
    # 输入创建人
    # writeOfJS(InputElement.get('任务说明填写元素'), attributeName='title', value=InputData.get('任务说明'))
    writeInTable(InputElement.get('任务说明填写元素'), InputData.get('任务说明'))
    # 上传附件
    clickOfJS(InputElement.get('上传链接元素'))
    uploadFile(InputElement.get('选择文件元素'), InputData.get('附件路径'))
    checkEleStatus(True, InputElement.get('附件列表元素'), timeout=5)
    click(InputElement.get('上传确认元素'), '上传')
    # 部门设置
    click(InputElement.get('部门设置元素'), '部门设置', delay=1)
    selectTreeOfTwoList(InputData.get('部门设置'), InputElement.get('部门复选框元素'), InputElement.get('部门列表元素'))
    save(InputElement.get('保存部门设置元素'))
    # 点击保存或派发
    if InputData.get('是否直接派发') == '是':
        click(InputElement.get('派发元素'), '派发')
    else:
        save(InputElement.get('保存元素'))
    # 断言成功与否
    checkEleStatus(UIExcept.get('校验结果'), InputElement.get('保存元素'), flag=5)
    # 关闭浏览器
    close('关闭')

if __name__ == '__main__':
    word_space = config['ScriptsDir']['scripts_dir']
    file_path = "全面风险管理/内控评价ICE/内控评价管理/测试数据/年度自评_新增.xls"
    excel_path = os.path.join(word_space, file_path)
    input_data = Common.dealXlsElement(excel_path, value_id=2, sheet_index=1)
    input_elements = Common.dealXlsElement(excel_path, sheet_index=0)
    ui_except = Common.dealXlsElement(excel_path, value_id=2, sheet_index=2)
    test(input_data=input_data, ui_except=ui_except, input_elements=input_elements)